package hu.mapro.gwtui.gxt.client.recordseditor.requestfactory;

import java.util.List;

import hu.mapro.gwtui.gxt.client.fieldseditor.Initializer;
import hu.mapro.gwtui.gxt.client.recordseditor.EditorInterface;
import hu.mapro.gwtui.gxt.client.recordseditor.EditorProviderInterface;

import com.google.common.base.Function;
import com.google.gwt.editor.client.EditorError;
import com.google.gwt.user.client.ui.Widget;

public class EditorProviderAdapter<T> { //implements EditorProviderInterface<T> {

//	Function<T, TypeEditorInterface<? extends T>> createEditorFunction;
//	Initializer initializer;
//	
//	@SuppressWarnings("unchecked")
//	@Override
//	public <V extends T> EditorInterface<V> edit(V object) {
//		final TypeEditorInterface<V> editor = (TypeEditorInterface<V>) createEditorFunction.apply(object);
//		editor.initialize(initializer);
//		
//		final V editingObject = editor.edit(object);
//		
//		return new EditorInterface<V>() {
//
//			@Override
//			public <Q> Q create(Class<Q> clazz) {
//				return editor.create(clazz);
//			}
//
//			@Override
//			public V getEditingObject() {
//				return editingObject;
//			}
//
//			@Override
//			public boolean isDirty() {
//				return editor.isDirty();
//			}
//
//			@Override
//			public List<EditorError> getErrors() {
//				return editor.getErrors();
//			}
//
//			@Override
//			public boolean hasErrors() {
//				return editor.hasErrors();
//			}
//
//			@Override
//			public void flush() {
//				editor.flush();
//			}
//
//			@Override
//			public Widget getWidget() {
//				return editor.getWidget();
//			}
//
//			@Override
//			public void focus() {
//				editor.focus();
//			}
//		};
//	}
//
//	public void setInitializer(Initializer initializer) {
//		this.initializer = initializer;
//	}
//
//	public void setCreateEditorFunction(
//			Function<T, TypeEditorInterface<? extends T>> createEditorFunction) {
//		this.createEditorFunction = createEditorFunction;
//	}

}
